Critical bug in flow control of dm_csrs #171
Closed
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR fixes a longstanding bug that leads to crashing the JTAG Tap when polling on end of computation (EOC) registers due to the DM_CSRS signaling ready, and the SBCS.sbbusy being deasserted when a request arrives, while the SBCS is still busy.
We found this while debugging in Chimera; even though the JTAG Test methods we use read the SBCS.sbbusy bit before re-issuing a read request, we observe an sbbusyerror that we cannot recover from. This PR fixes this issue, by deasserting the req_ready. My guess is that the timing of sbbusyerror is somehow delayed with respect to the request, but I'll have to dig a bit deeper.
@Lore0599 @adimauro-iis